package meterMonitor.mapper;

import meterMonitor.model.LinePO;
import meterMonitor.model.LineRecPO;
import meterMonitor.model.vo.ActivationVO;
import meterMonitor.model.vo.StatusVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface LineMapper {

    void addLine(LinePO line);

    void updateLine(LinePO line);

    void deleteLineById(Integer id);

    List<LinePO> queryLine(LinePO line);

    LinePO getLineById(Integer lineId);

    List<StatusVO> linesStatus();

    Long countTarget();

    List<ActivationVO> countActivation();

    List<LineRecPO> getLineRecByLineIdAndType(@Param("lineId") Integer lineId, @Param("type") Integer type);

    LineRecPO getLineRecByLineIdAndEndTimeIsNull(@Param("lineId") Integer lineId);

    LineRecPO getLineRecByLineIdAndEndTimeNotNull(@Param("lineId") Integer lineId);

    LineRecPO getLastestLineRecByLineId(@Param("lineId") Integer lineId);
}
